<?php

class Usuario_Model extends CI_Model {
    /* public function __construct()
      {
      $this->load->database();
      } */

    function login($username, $password) {
        $this->db->select('jefe,cedula,nombre,apellidos,tipo,departamento,puesto,ubicacion,telefono,horario');
        $this->db->from('usuario');
        $this->db->where('cedula = ' . "'" . $username . "'");
        $this->db->where('password = ' . "'" . $password . "'");

        $query = $this->db->get();

        if ($query->num_rows() == 1) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    public function get_usuario($cedula = FALSE) {
        if ($cedula === FALSE) {
            $query = $this->db->get('usuario');
            return $query->result_array();
        }
        $query = $this->db->get_where('usuario', array('cedula' => $cedula));
        return $query->row_array();
    }

    public function get_jefe() {
        $this->db->select('cedula,nombre,apellidos');
        $this->db->from('usuario');
        $this->db->where('tipo = 2');
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            return $query;
        } else {
            return false;
        }
    }

    public function get_usuario_name($name, $ape1, $ape2) {
        $this->db->select('cedula,nombre,apellidos,departamento');
        $this->db->from('usuario');
        $this->db->where('nombre = ' . "'" . $name . "'" .
                ' AND apellidos = ' . "'" . $ape1 . "'");

        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            return $query;
        } else {
            return false;
        }
    }

    public function get_usuario_like_name($nombre) {
        $query = $this->db->query('select nombre,apellidos from usuario where nombre like ' . '\%' . $nombre . '\%');
        if ($query->num_rows() > 0) {
            return $query; // just return $query
        } else {
            return NULL;
        }
    }

    public function get_usuario_like_cedula($cedula) {
        $query = $this->db->query('select nombre,apellidos from usuario where nombre like ' . '\%' . $cedula . '\%');
        if ($query->num_rows() > 0) {
            return $query; // just return $query
        } else {
            return NULL;
        }
    }

    public function verf_pass($id, $pass) {
        $this->db->select('password');
        $this->db->from('usuario');
        $this->db->where('cedula = ' . "'" . $id . "'" .
                ' AND password = ' . "'" . $pass . "'");
        $query = $this->db->get();

        if ($query->num_rows() > 0) {
            return true;
        } else {
            return false;
        }
    }

    public function getCumpleanieros() {
        $query = $this->db->query(
                'SELECT nombre,apellidos 
                                FROM usuario
                                WHERE 
                                   DATE_FORMAT(fechaNacimiento,\'%m-%d\') = DATE_FORMAT(NOW(),\'%m-%d\')');

        if ($query->num_rows() > 0) {
            return $query; // just return $query
        } else {
            return NULL;
        }
    }

    public function insert_usuario() {
        $this->load->helper('url');

        $data = array(
            'cedula' => $this->input->post('cedula'),
            'tipo' => $this->input->post('nivel'),
            'jefe' => $this->input->post('jefe'),
            'nombre' => $this->input->post('nombre'),
            'apellidos' => $this->input->post('apellido1') . ' ' . $this->input->post('apellido2'),
            'genero' => $this->input->post('genero'),
            'civil' => $this->input->post('Estado_Ci'),
            'fechaingreso' => $this->input->post('Fecha_ICE'),
            'fechaNacimiento' => $this->input->post('Fecha_nacim'),
            'departamento' => $this->input->post('depart'),
            'puesto' => $this->input->post('puesto'),
            'ubicacion' => $this->input->post('ubicacion'),
            'telefono' => $this->input->post('telefono'),
            'password' => $this->input->post('cedula'),
            'horario' => $this->input->post('horario'),
            'extension' => $this->input->post('ext'),
            'ultMarca' => $this->input->post('Fecha_ICE'),
            'EstUltMarca' => FALSE,
                //falta ext y codigo de llamada
        );


        $query = $this->db->insert('usuario', $data);

        if ($query) {
            return true;
        } else {
            if ($this->db->_error_number() == 1062)//Si ya existe el primary key
                echo '<b>Ya existe un usuario con esa cédula</b>';
            else
                echo '<b>Se produjo un error intente de nuevo</b>';
            // si quiere saber cual fue el error$this->db->_error_message();
            return false;
        }

        //return $this->db->insert('usuario', $data);
    }

    public function user_exists($username) {
        $this->db->where('cedula', $username);
        $this->db->from('usuario');
        $query = $this->db->get();

        if ($query->num_rows() > 0) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function Mod_horario_user($cedula, $new) {
        $this->db->from('usuario');
        $this->db->where('cedula', $cedula);
        //$this->db->where('password', $old);

        $query = $this->db->get();
        if ($query) {
            $data = array(
                'horario' => $new
            );
            $this->db->where('cedula', $cedula);
            $this->db->update('usuario', $data);
            return true;
        } else {
            return false;
        }
    }

    public function Mod_Usuario($cedula, $civil, $departamento, $puesto, $tipo, $ubicacion, $telefono, $extension) {
        $this->db->from('usuario');
        $this->db->where('cedula', $cedula);

        $query = $this->db->get();
        if ($query) {
            $data = array(
                'tipo' => $tipo,
                'civil' => $civil,
                'departamento' => $departamento,
                'puesto' => $puesto,
                'tipo' => $tipo,
                'ubicacion' => $ubicacion,
                'telefono' => $telefono,
                'extension' => $extension,
            );

            $this->db->where('cedula', $cedula);
            $this->db->update('usuario', $data);
            return true;
        } else {
            return false;
        }
    }

    public function delete_user($cedula) {
        $this->db->where('cedula', $cedula);
        $this->db->delete('usuario');
        return TRUE;

//        $query = $this->db->get();
//        if ($query->num_rows() > 0) {
//            return true;
//        } else {
//            // si quiere saber cual fue el error$this->db->_error_message();
//            return false;
//        }
    }

    public function set_password($cedula, $old, $new) {
        $this->db->where('cedula', $cedula);
        $this->db->where('password', $old);
        $this->db->from('usuario');
        $query = $this->db->get();
        if ($query) {
            $data = array(
                'password' => $new
            );
            $this->db->where('cedula', $cedula);
            $this->db->update('usuario', $data);
            return true;
        } else {
            return false;
        }
    }

    public function enviar_sugerencia($subject, $comments) {

        $this->load->library('email');
        $this->email->from('sistema.control.de.empleados@gmail.com', 'Sistema de Control de Empleados');
        $this->email->to("fazio.una@gmail.com, fabianlo518@gmail.com, sebasti.395@gmail.com, jfallasramos@gmail.com");
//        $this->email->to("jfallasramos@gmail.com");
        $this->email->subject("Sugerencia del Sist. Control de Empleados");
        $this->email->message($comments);
        $this->email->send();
        if ($this->email->send()) {

            return true;
        } else {
            return false;
        }
    }

}